package com.ruipengkj.component;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.TexturePaint;

import javax.swing.JToggleButton;

import com.ruipengkj.commons.util.Util;
import com.ruipengkj.factory.ImageFactory;

public class RPToolBarJButton extends JToggleButton {

	private static final long serialVersionUID = 1L;
	
	private Image image=ImageFactory.loadImage(ImageFactory.TITLE_SELECT).getImage();
	private TexturePaint paint = Util.createTexturePaint(ImageFactory.loadImage(ImageFactory.TITLE_SELECT).getImage());
	
	public RPToolBarJButton(String text){
		super(text);
		setContentAreaFilled(false); // 这一句非常重要, 否则父类还会绘制按钮的区域. 
		setFont(Util.FONT_14_PLAIN);
		setCursor(Util.CURSOR_HAND);
	}
	
	@Override
	protected void paintComponent(Graphics g) {
		Graphics2D g2d = (Graphics2D) g;
		if (getModel().isPressed()||getModel().isSelected()) {
			//鼠标滑过
//			g2d.setPaint(paint);
//			g2d.fillRect(0, 0, this.getWidth(), this.getHeight());
			 g2d.drawImage(image, 2, 0, null);
		}
//		g2d.dispose();
		super.paintComponent(g);
	}
//	
//	public static final Color BUTTON_COLOR1 = new Color(205, 255, 205);
//	public static final Color BUTTON_COLOR2 = new Color(51, 154, 47);
//	// public static final Color BUTTON_COLOR1 = new Color(125, 161, 237);
//	// public static final Color BUTTON_COLOR2 = new Color(91, 118, 173);
//	public static final Color BUTTON_FOREGROUND_COLOR = Color.WHITE;
//	private boolean hover;
//
//	public RPJButtonBlue() {
//		setFont(new Font("system", Font.PLAIN, 12));
//		setBorderPainted(false);
//		setForeground(BUTTON_COLOR2);
//		setFocusPainted(false);
//		setContentAreaFilled(false);
//		addMouseListener(new MouseAdapter() {
//			@Override
//			public void mouseEntered(MouseEvent e) {
//				setForeground(BUTTON_FOREGROUND_COLOR);
//				hover = true;
//				repaint();
//			}
//
//			@Override
//			public void mouseExited(MouseEvent e) {
//				setForeground(BUTTON_COLOR2);
//				hover = false;
//				repaint();
//			}
//		});
//	}
//
//	@Override
//	protected void paintComponent(Graphics g) {
//		Graphics2D g2d = (Graphics2D) g.create();
//		int h = getHeight();
//		int w = getWidth();
//		float tran = 1F;
//		if (!hover) {
//			tran = 0.3F;
//		}
//
//		g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
//		GradientPaint p1;
//		GradientPaint p2;
//		if (getModel().isPressed()) {
//			p1 = new GradientPaint(0, 0, new Color(0, 0, 0), 0, h - 1,new Color(100, 100, 100));
//			p2 = new GradientPaint(0, 1, new Color(0, 0, 0, 50), 0, h - 3,new Color(255, 255, 255, 100));
//		} else {
//			p1 = new GradientPaint(0, 0, new Color(100, 100, 100), 0, h - 1,new Color(0, 0, 0));
//			p2 = new GradientPaint(0, 1, new Color(255, 255, 255, 100), 0,h - 3, new Color(0, 0, 0, 50));
//		}
//		g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,tran));
//		RoundRectangle2D.Float r2d = new RoundRectangle2D.Float(0, 0, w - 1,h - 1, 20, 20);
//		Shape clip = g2d.getClip();
//		g2d.clip(r2d);
//		GradientPaint gp = new GradientPaint(0.0F, 0.0F, BUTTON_COLOR1, 0.0F,h, BUTTON_COLOR2, true);
//		g2d.setPaint(gp);
//		g2d.fillRect(0, 0, w, h);
//		g2d.setClip(clip);
//		g2d.setPaint(p1);
//		g2d.drawRoundRect(0, 0, w - 1, h - 1, 20, 20);
//		g2d.setPaint(p2);
//		g2d.drawRoundRect(1, 1, w - 3, h - 3, 18, 18);
//		g2d.dispose();
//		super.paintComponent(g);
//	}
}
